import { configureStore } from '@reduxjs/toolkit';
import toolkitCounterSliceReducer, { toolkitCoounterSlice_string } from './toolkitCounterSlice';
// loggger 中间件
import logger from 'redux-logger';
// 异步请求
import asyncReducer from './toolkitAsyncThunk';

// 使用 configureStore 创建一个redux数据
export default configureStore({
  // 要传递给redux的初始值
  preloadedState: {
    spaceName: '@toolkit/redux'
  },
  // 是否开启浏览器的 redux 开发调试工具
  devTools: process.env.NODE_ENV !== 'production',
  // middleware 中间件
  // middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(logger),
  reducer: {
    // 使用数据时的名称 -> 创建的slice返回的reducer
    // toolkitCounterSlice: toolkitCounterSliceReducer,
    [toolkitCoounterSlice_string]: toolkitCounterSliceReducer,
    toolkitAsyncThunk: asyncReducer
  }
  // 实体适配器
  // ids 必须是数字或字符串
  // ids: [111, 222, 333],
  // key 需要与 ids 中的 value 对应
  // entities: {
  //   111: {id: 111, title: '吃饭', isCompleted: false},
  //   222: {id: 222, title: '睡觉', isCompleted: false},
  //   333: {id: 333, title: '打豆豆', isCompleted: false}
  // }
});
